package com.centriole.service.workflow.dao;

import com.centriole.service.workflow.common.QueryVo;
import com.centriole.service.workflow.entity.ProInstance;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;

@Mapper
public interface ProInstanceMapper {

	public void insert(ProInstance proInstance);
	public void update(ProInstance proInstance);
	public ProInstance selectById(String id);
	public ProInstance selectByInstanceId(String instanceId);

	/**
	 * 【2018/5/24新增】获取所有“死流程实例”(对"死流程"的定义参考QueryVo里的字段)
	 * @see QueryVo
	 * @param vo
	 * @return
	 */
	List<ProInstance> selectDeadInstaces(@Param("query") QueryVo vo);

	/**
	 * 【2018/5/30新增】查询流程实例的结束时间
	 * @see QueryVo
	 * @param instaceId
	 * @return
	 */
	Date selectEndTime(String instaceId);

	/**
	 * 【2018/5/31新增】根据queryVo 查询 流程实例
	 * @see QueryVo
	 * @param vo 查询Vo
	 * @return
	 */
	List<ProInstance> selectByQueryVo(@Param("query")QueryVo vo);

	/**
	 * 【2018/6/1新增】查询今天的流程实例
	 * @see QueryVo
	 * @return
	 */
	List<ProInstance> selectTodayInstances();

	/**
	 * 将一个流程实例的 运行状态结束
	 * @param instanceId
	 * @return
	 */
	int finishInstace( @Param("instanceId") String instanceId);

}
